package cn.iocoder.yudao.module.resource.service.audiotone;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.resource.controller.admin.audiotone.vo.AudioTonePageReqVO;
import cn.iocoder.yudao.module.resource.controller.admin.audiotone.vo.AudioToneRespVO;
import cn.iocoder.yudao.module.resource.controller.admin.audiotone.vo.AudioToneSaveReqVO;
import cn.iocoder.yudao.module.resource.dal.dataobject.audiotone.AudioToneDO;
import jakarta.validation.Valid;

/**
 * 声纹管理 Service 接口
 *
 * @author wgs
 */
public interface AudioToneService {

    /**
     * 创建声纹管理
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Integer createAudioTone(@Valid AudioToneSaveReqVO createReqVO);

    /**
     * 更新声纹管理
     *
     * @param updateReqVO 更新信息
     */
    void updateAudioTone(@Valid AudioToneSaveReqVO updateReqVO);

    void updateAudioToneById(AudioToneDO tone);

    /**
     * 删除声纹管理
     *
     * @param id 编号
     */
    void deleteAudioTone(Integer id);

    /**
     * 获得声纹管理
     *
     * @param id 编号
     * @return 声纹管理
     */
    AudioToneDO getAudioTone(Integer id);

    void setFileUrl(AudioToneRespVO audioToneDO);

    /**
     * 获得声纹管理分页
     *
     * @param pageReqVO 分页查询
     * @return 声纹管理分页
     */
    PageResult<AudioToneDO> getAudioTonePage(AudioTonePageReqVO pageReqVO);

    void setCloneVoiceId(Integer id, String cloneVoiceId);

}